
package com.example.springboot.mapper;

import com.example.springboot.dto.MerchantManagementDTO;
import com.example.springboot.dto.*;
import com.example.springboot.entity.ClothingRental;
import com.example.springboot.entity.Merchant;
import com.example.springboot.entity.SelfServicePoint;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;


import java.util.List;
import java.util.Map;

@Mapper
public interface MerchantMapper {

    /**
     * 查询距离最近的商家列表
     */

    List<MerchantDTO> findMerchantFields(@Param("latitude") double latitude, @Param("longitude") double longitude);

    /**
     * 查询距离最近的自助点列表
     */

    List<SelfServicePointDTO> findSelfServicePointFields(@Param("latitude") double latitude, @Param("longitude") double longitude);

    /**
     * 查询商家字段
     */
    List<MerchantDTO> findMerchantFields();
    /**
     * 根据商家ID查询商家详情
     */
    MerchantDTO findMerchantById(@Param("merchantId") int merchantId);
    /**
     * 查询自助点字段
     */
    List<SelfServicePointDTO> findSelfServicePointFields();

    /**
     * 查询所有商家
     */
    List<Merchant> findAllMerchants();

    /**
     * 查询所有自助点
     */
    List<SelfServicePoint> findAllSelfServicePoints();

    /**
     * 根据自助点ID查询自助点详情
     */
    SelfServicePointDTO findSelfServicePointById(@Param("pointId") int pointId);
    /**
     * 根据手机号查询商家
     */
    Merchant findByPhoneNumber(@Param("phoneNumber") String phoneNumber);

    /**
     * 插入商家
     */
    void insertMerchant(Merchant merchant);

    /**
     * 更新商家
     */
    void updateMerchant(Merchant merchant);
    /**
     * 根据商家ID查询商家信息
     * @param merchantId 商家ID
     * @return 商家信息
     */
    Merchant selectById(@Param("merchantId") int merchantId);
    Merchant findById(Integer merchantId);
    String findServicesByMerchantId(int merchantId);
    /**
     * 根据商家ID查询订单
     */
    List<MerchantOrderDTO> findOrdersByMerchantId(@Param("merchantId") int merchantId);

    void updateMerchantAvatar(@Param("merchantId") int merchantId, @Param("avatarUrl") String avatarUrl);

    void updateMerchantPoster(@Param("merchantId") int merchantId, @Param("posterUrl") String posterUrl);
    MerchantUsernameImageDTO selectMerchantById(Integer merchantId);
    int insertMerchantManagement(MerchantManagementDTO merchantManagementDTO);
    int updateMerchantManagement(MerchantManagementDTO merchantManagementDTO);


    int updateMerchantName(@Param("merchantId") int merchantId, @Param("name") String name);


    int updateMerchantServices(@Param("merchantId") int merchantId, @Param("services") String services);


    int deleteMerchant(@Param("merchantId") int merchantId);
    List<MerchantDTO> selectAllMerchants();

    List<SelfServicePointNameDTO> findSByAdminId(@Param("adminId") Integer adminId);
    List<MerchantDTO> findMByAdminId(@Param("adminId") Integer adminId);
    Merchant findByIds(Integer merchantId);
    // 获取订单基本信息
    Map<String, Object> findOrderById(int orderId);

    // 获取租赁商品详情
    ClothingRental findClothingRentalById(int rentalId);

    // 获取收益信息
    Map<String, Object> findEarningsByOrderId(int orderId);

    // 获取评价信息
    Map<String, Object> findReviewByOrderId(int orderId);
}
